جزوه جامع فصل اول لینوکس ← بازگشت به فهرست
📘 جزوه جامع فصل اول مبانی لینوکس و خط فرمان
📅 تاریخ: ۱۴۰۵/۰۵/۲۱ 👤 مدرس: محمد عابدینی 🐚 Bash / Zsh · 🐧 Debian

▍ مقدمه‌ای بر لینوکس و خط فرمان

لینوکس یک سیستمعامل متن‌باز است که در آن همه چیز به صورت فایل نمایش داده می‌شود. خط فرمان (Terminal) قدرتمندترین ابزار برای مدیریت سیستم است. در این جزوه با دستورات پایه، مفاهیم مسیرها، متغیرها، ویرایشگرها، جستجو، پردازش متن، مدیریت فرایندها و ... آشنا می‌شوید.

📌 اصل طلایی: «همه چیز در لینوکس یک فایل است» – حتی دستگاه‌ها، پروسس‌ها و سخت‌افزار.

▍ دستورات پایه و کار با دایرکتوری‌ها

• pwd (Print Working Directory)

مسیر مطلق دایرکتوری جاری را نمایش می‌دهد.

$ pwd /home/user

• cd (Change Directory)

دستورتوضیح
cdرفتن به دایرکتوری خانه
cd /رفتن به ریشه
cd ..یک سطح بالاتر
cd -بازگشت به دایرکتوری قبلی
cd ~رفتن به خانه

• ls (List)

گزینهتوضیح
-aنمایش فایل‌های مخفی (شروع با .)
-lنمایش جزئیات کامل (مجوزها، مالک، اندازه، تاریخ)
-hاندازه قابل خواندن (1K, 2M, ...)
-Rنمایش بازگشتی زیردایرکتوری‌ها

• echo و touch

echo متن را در ترمینال چاپ می‌کند. با -e دنباله‌های فرار مانند \n و \t فعال می‌شوند.

touch فایل خالی ایجاد می‌کند یا زمان تغییر آن را به‌روز می‌کند.

$ echo "Hello" > file.txt $ touch newfile.txt

▍ مسیرهای مطلق و نسبی

▍ مشاهده محتوای فایل‌ها

▍ متغیرها و محیط شل

متغیرها با = تعریف می‌شوند (بدون فاصله) و با $ مقدار آن‌ها نمایش داده می‌شود.

$ name="Ali" $ echo $name Ali

▍ ویرایشگرهای متنی

• vi / vim

• nano

▍ کمک گرفتن

روشتوضیح
man commandصفحه راهنمای کامل (با کلیدهای Space, b, /, q)
command --helpراهنمای مختصر (فقط برای دستورات خارجی)
-hمعنی متغیر دارد (معمولاً human-readable، گاهی help)

▍ پردازش متن

• wc (Word Count)

wc -l تعداد خطوط، -w تعداد کلمات، -c تعداد بایت‌ها.

• cut

استخراج ستون‌ها با جداکننده: cut -d: -f1 /etc/passwd (فیلد اول با جداکننده :)

• sort و uniq

sort -n مرتب‌سازی عددی، uniq -c شمارش تکرارها (بعد از sort).

$ sort -n numbers.txt | uniq -c

• grep

جستجوی الگو در فایل‌ها یا خروجی دستورات. گزینه‌های مهم: -i (بدون حساسیت به حروف)، -v (معکوس)، -r (بازگشتی)، -n (شماره خط)، -c (تعداد)، -w (کلمه کامل).

$ grep -i error /var/log/syslog $ ps aux | grep firefox

• sed (Stream Editor)

جایگزینی متن: sed 's/old/new/g' file.txt (همه موارد). با -i تغییرات مستقیم روی فایل اعمال می‌شود.

$ sed -i 's/root/admin/g' /etc/passwd

• tr

جایگزینی یا حذف کاراکترها: tr ':' '.' < file یا tr -d '0-9'.

• tee

خروجی را هم در ترمینال نمایش می‌دهد و هم در فایل ذخیره می‌کند: command | tee file.txt (با -a به انتها اضافه می‌کند).

▍ جستجوی فایل‌ها با find

• xargs

خروجی را به آرگومان دستور دیگر تبدیل می‌کند: find . -name "*.tmp" | xargs rm

گزینه‌های مهم: -n (تعداد آرگومان‌ها)، -I (جایگزینی الگو)، -0 (برای نام‌های با فاصله)، -p (تأیید قبل از اجرا).

▍ تاریخچه دستورات (history)

▍ پایپ (Pipe) و انتقال (Redirection)

$ ifconfig | grep "inet" > ip.txt $ ls /fake 2> error.log

▍ مدیریت فرایندها

📌 نکات طلایی برای امتحان:
  • مسیر مطلق با / شروع می‌شود، نسبی بدون آن.
  • برای نمایش مسیر جاری از pwd استفاده کنید.
  • در vi/vim، Command Mode پیش‌فرض است و با i وارد Insert Mode می‌شوید.
  • برای خروج از vi بدون ذخیره: :q! و با ذخیره: :wq.
  • در nano، ^ یعنی Ctrl و M- یعنی Alt.
  • grep برای جستجوی الگو، sed برای جایگزینی، awk برای پردازش ستون‌ها.
  • find برای جستجوی فایل‌ها، xargs برای ارسال خروجی به عنوان آرگومان.
  • | (پایپ) خروجی را به ورودی دستور بعدی می‌دهد.
  • > خروجی را در فایل بازنویسی می‌کند، >> به انتها اضافه می‌کند.
  • متغیرهای محیطی با export سراسری می‌شوند.
  • history -c کش جلسه را پاک می‌کند، -d یک خط خاص را حذف می‌کند.
  • tail -f لاگ‌ها را به صورت زنده دنبال می‌کند.

▍ تمرین‌های پیشنهادی

  1. با pwd و cd بین دایرکتوری‌ها حرکت کنید و مسیرها را ببینید.
  2. یک فایل متنی با echo بسازید و با cat و head و tail بخش‌های مختلف آن را مشاهده کنید.
  3. با grep و sed یک فایل را جستجو و جایگزینی کنید.
  4. با find فایل‌های بزرگ‌تر از ۱۰ مگابایت را در دایرکتوری خانه پیدا کنید.
  5. با history دستورات قبلی خود را ببینید و یک دستور را با !number دوباره اجرا کنید.
  6. با tee خروجی یک دستور را هم در ترمینال ببینید و هم در فایل ذخیره کنید.
  7. با ps aux | grep فرایندهای مربوط به یک برنامه را پیدا کنید.
  8. با man راهنمای کامل یک دستور را مطالعه کنید و از --help برای مرور سریع استفاده کنید.
  9. با ویرایشگر nano یا vim یک فایل جدید بسازید و تغییرات را ذخیره کنید.
✅ جمع‌بندی فصل اول:

با تسلط بر این مباحث، می‌توانید به‌راحتی در محیط خط فرمان لینوکس کار کنید، فایل‌ها را مدیریت کنید، متن‌ها را پردازش کنید، فرایندها را کنترل کنید و از ابزارهای کمک‌رسان استفاده کنید. این مهارت‌ها پایه‌ی تمام کارهای پیشرفته‌تر در لینوکس هستند.